# exoALMA VIII. Data Products

## Generating cube samples

We provide samples of the Fourier weights for our fits as well as a script `make_sample_cubes.py` which you can use to generate fits files containing cube samples. The `.fits` files are the data cubes downsampled at the level used in our analysis, these are read so that we can output sample cubes with the same structure/header/etc. The `SOURCE_Npix_Nmodes_100samples.npz` files contain 100 samples of the Fourier weights for the fits to `SOURCE`. The `make_sample_cubes.py` file is a script to output cube samples in `.fits` format.

### Requirements

1. A Python installation with version >= 3.10
2. `uv` (which is a Python package, see [their docs](https://docs.astral.sh/uv/) for installation instructions, but you can just `pip install uv`)

(Stricly you don't need `uv` if you just want to install the dependencies at the top of the script yourself.)

### How to run

Do `uv run make_sample_cubes.py` in this directory, and be connected to the internet so that `uv` can handle the dependencies. That's it! You can control how many samples and for which source by editing the constants declared at the top of the script.

## Reading moment samples

Here we provide moment map samples (peak intensity, peak velocity, line width) from our results, and provide an example script to read these results. The `.npz` files contain these samples in a compressed `NumPy` format. The `read_moment_samples.py` is just an example script to demonstrate how to access these results.

### Requirements

1. A Python installation with version >= 3.10
2. `uv`

(The only requirement is `NumPy` so it would be easy to skip `uv` for this one.)

### How to run

Do `uv run read_moment_samples.py` in this directory, and be connected to the internet so that `uv` can handle the dependencies. That's it! You can extend the script or copy the code in order to do your analysis.

## Contact

Contact <thomas.hilder@monash.edu> if you need help with any of the above.
